package com.ugoodtech.mdcc.web.service;

import com.ugoodtech.mdcc.core.domain.StationReport;
import com.ugoodtech.mdcc.core.domain.User;
import com.ugoodtech.mdcc.core.domain.VstarServiceReport.VstarServiceReport;
import com.ugoodtech.mdcc.web.dto.JsonResponse;

import com.ugoodtech.mdcc.web.dto.SearchParamDTO;
import com.ugoodtech.mdcc.web.pojo.dto.CustomGenerateResultDTO;
import java.util.List;
import org.springframework.data.domain.Page;

public interface VstarServiceReportService {
//    JsonResponse statisticalRegularService(String province, String city, String brand, String category, String name,
//                                           Long startTime, Long endTime, String serviceType,
//                                           Integer serviceNum, String userId, String isFollowUp, String followType);

//    JsonResponse statServiceReport();

    //统计常规服务报告
    VstarServiceReport statReport(String provinces, String brand, String category, String name,
                                  Long serviceStartTime, Long serviceEndTime, Long startTime, Long endTime, Long serviceType,
                                  Integer serviceNum, String userName, String isFollowUp, String followType, Long userId, String userType, Boolean isCustomer,
                                  Long customerStat, Long customerType, String parintBrand, String productPosition, String stationNum, Long departmentId);

    /**
     * 分页筛选常规报告, 来生成满意度报告并发送短信
     *
     * @param pageNum 分页索引
     * @param pageSize 分页大小
     * @param searchParamDTO 搜索参数
     */
    Page listRegularReport(int pageNum, int pageSize, SearchParamDTO searchParamDTO);

    /**
     * 根据馋鬼报告id列表发送短信
     *
     * @param idList 常规报告id列表
     */
    CustomGenerateResultDTO generateCustomReport(List<Long> idList);

    //筛选条件
    List<StationReport> getStationReport(String provinces, String brand, String category, String name,
                                         Long serviceStartTime, Long serviceEndTime, Long startTime, Long endTime, Long serviceType,
                                         Integer serviceNum, String userName, String isFollowUp, String followType, Long userId, String userType, Boolean isCustomer,
                                         Long customerStat, Long customerType, String parintBrand, String productPosition, String stationNum, Long departmentId);

    //todo 按照 站点 人名 品牌 统计
    com.ugoodtech.mdcc.core.dto.JsonResponse getServiceChart(User user,
                                                             String provinces,
                                                             String brandname,
                                                             String stationName,
                                                             String userName,
                                                             String departmentId,
                                                             Long startTime,
                                                             Long endTime,
                                                             Long serviceStartTime,
                                                             Long serviceEndTime,
                                                             String category);
}
